package san.java.day09;

/**
 * 关键字final: final关键字表示 "最终". 表示不可修改.
 *  1. final标记的类不能被继承
 *      i  提高安全性
 *      ii 提高程序的可读性
 *  2. final标记的方法不能被子类重写.
 *      i  Object类中的getClass()
 *  3. final 标记的变量(成员变量和局部变量)即称为常量. 名称大写,且只能被赋值一次
 *      i  final标记的变量必须在声明的同时或在每个构造方法中或代码块中显示赋值,然后才能使用
 *          - 常量必须显示赋值,  在构造器中, 代码块中或者构造函数中
 *          - 静态常量只能在静态代码块中,或者声明的同时
 *
 */

//final
class FA {
    final void testA() {

    }
}

public class Final_02 {

    final int I;  // 常量必须显示赋值
    final static int SI; // 静态常量, 只能在初始化时或者静态代码块中赋值

    static  {
        SI = 0;
    }

    public Final_02() {
        I = 1;  // 在构造函数中赋值也行
    }

    class B extends FA {

//        void testA() {  // final 方法不能重写
//
//        }
    }


}
